MinIO 是一个基于 AGPL v3 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
已在生产环境大规模使用,数据量达到 TB 级别,稳定可靠。
注意指定 access-key 和 secret-key,生产环境需要配置文件目录挂载以持久化数据。 以下版本为 MinIO 最后一个 Apache 2.0 协议版本,可以放心商用。
安装后使用浏览器访问 http://ip:9000,如果可以访问,则表示 MinIO 已经安装成功。
账号/密码为上边指定的 access-key 和 secret-key
在应用配置文件中添加 MinIO 信息:
添加文件系统依赖:
使用 FileTemplate 进行文件操作:
| 方法名 | 作用 | 参数 |
|---|---|---|
| createBucket | 创建 bucket | bucketName: bucket 的名称 |
| getAllBuckets | 获取所有的 bucket | 无 |
| getBucket | 根据 bucket 名称获取 bucket | bucketName: bucket 的名称 |
| removeBucket | 删除指定的 bucket | bucketName: bucket 的名称 |
| getAllObjectsByPrefix | 根据文件前缀查询文件 | bucketName: bucket 的名称 prefix: 文件前缀 recursive: 是否递归查询 |
| getObjectURL | 获取文件的外链 | bucketName: bucket 的名称 objectName: 文件名称 expires: 过期时间(0-7 天) |
| getObject | 获取文件 | bucketName: bucket 的名称 objectName: 文件名称 |
| putObject | 上传文件 | bucketName: bucket 的名称 objectName: 文件名称 stream: 文件流 size: 大小 contextType: 类型 |
| getObjectInfo | 获取文件信息 | bucketName: bucket 的名称 objectName: 文件名称 |
| removeObject | 删除文件 | bucketName: bucket 的名称 objectName: 文件名称 |
| afterPropertiesSet | 初始化方法,在设置属性之后会被调用,用于创建 AmazonS3 实例 | 无 |